package com.bestcem.xm.qdes.grpc.client.dto;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 组织信息DTO,(请求user获得)
 *
 * @author liheng
 * @version v1.0
 * @date 2021/5/11-2107
 */

@Data
@NoArgsConstructor
public class OrgInfoDto {
    /**
     * 组织id
     */
    private String id;
    /**
     * 组织编码
     */
    private String code;
    /**
     * 组织名称
     */
    private String name;
    /**
     * 备注
     */
    private String content;
    /**
     * 组织状态
     */
    private Integer status;
    /**
     * 账号来源
     */
    private Integer source;
    /**
     * 根组ID
     */
    private String rootGroupId;
    /**
     * 行业ID
     */
    private String industryId;
    /**
     * 套餐ID
     */
    private String packageId;
    /**
     * 公司联系人邮箱
     */
    private String email;
    /**
     * 公司联系人手机号
     */
    private String mobile;
    /**
     * 公司过期日期
     */
    @JsonDeserialize(using = LocalDateTimeDeserializer.class) // 反序列化
    @JsonSerialize(using = LocalDateTimeSerializer.class) // 序列化
    private LocalDateTime expiryDt;
    /**
     * 免费时间限制，主要对部分功能做时间限制
     */
    @JsonDeserialize(using = LocalDateTimeDeserializer.class) // 反序列化
    @JsonSerialize(using = LocalDateTimeSerializer.class) // 序列化
    private LocalDateTime freeExpiryDt;
    /**
     * 公司皮肤
     */
    private String skin;
    /**
     * RSA公钥文件路径
     */
    private String publicKey;
    /**
     * RSA私钥ID
     */
    private String privateKeyId;
    /**
     * 是否开启投放审核
     */
    private Boolean deliverCheck;
    /**
     * 是否完善信息
     */
    private Boolean complete;
    /**
     * 管理员账号名
     */
    private String orgAdmin;
    /**
     * 企业钱包id
     */
    private String corporateWallet;
    /**
     * 短信单价 单位分
     */
    private Integer smsPrice;
    /**
     * 品牌露出
     */
    private Integer footer;
    /**
     * 审核使用的smtp id
     */
    private String checkSmtpId;
    /**
     * 是否向销售发送用户信息
     */
    private Boolean hasNotifySales;
    /**
     * 是否是内部公司
     */
    private Boolean isInner;
    /**
     * 前端PaaS配置
     */
    private String paasConf;
    /**
     * 是否开启投放审核
     */
    private Boolean isDeliverCheck;
}
